/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.common.electricsent.service;

import com.icinfo.cloud.provider.punish.common.electricsent.dto.DocumentSendPageRequest;
import com.icinfo.cloud.provider.punish.common.electricsent.dto.DocumentSendPageResponse;
import com.icinfo.cloud.provider.punish.common.electricsent.dto.DocumentSendRecordQueryDto;
import com.icinfo.cloud.provider.punish.common.electricsent.dto.DocumentSendRecordSaveDto;
import com.icinfo.cloud.provider.punish.common.electricsent.vo.DocumentSendRecordVo;
import com.icinfo.framework.common.web.Result;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * 描述: 文书发送记录 document_send_record 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年02月18日
 */
public interface IDocumentSendRecordService extends BaseService {


    /**
     * 【V1.0.0】描述：保存文书发送记录
     *
     * @param saveDto {@link DocumentSendRecordSaveDto}
     * @return {@link Result <String>} 保存结果
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    Map<String,Object> saveDocumentSendRecord(DocumentSendRecordSaveDto saveDto);

    /**
     * 【V1.0.0】描述：获取文书发送记录列表
     *
     * @param queryDto {@link DocumentSendRecordQueryDto}
     * @return {@link List<DocumentSendRecordVo>} 文书发送记录列表
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    List<DocumentSendRecordVo> getDocumentSendRecordList(DocumentSendRecordQueryDto queryDto);

    /**
     * 【V1.0.0】描述：根据唯一标识查询文书发送记录
     *
     * @param id 唯一标识
     * @return {@link DocumentSendRecordVo} 文书发送记录
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    DocumentSendRecordVo getDocumentSendRecord(String id);

    /**
     * 【V2.0.0】描述：清空指定条件的发送记录
     *
     * @param condition 指定条件
     * @return int 删除记录数
     * @author xiangyuyu
     * @date 2022-05-16 10:39
     */
    int deleteRecordBySpecialCondition(Map<String,String> condition);

    /**
     * 【V1.3.0】描述：修改文书送达记录为删除
     * @author tianrunjia
     * @date 2022-06-27
     * @return
     */
    void doRemoveDocumentSendRecord(String documentId, String caseId);

    /**
     * 【V1.0.0】描述：保存文书发送记录
     *
     * @param sendRecord {@link DocumentSendRecordSaveDto}
     * @return {@link Result <String>} 保存结果
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    Map<String,Object> saveExecuteDocumentSendRecord(DocumentSendRecordSaveDto sendRecord);

    /**
     * 电子送达记录分页查询
     *
     * @param queryDto {@link DocumentSendPageRequest}
     * @return {@link Result<List<DocumentSendPageResponse>>} 电子送达记录列表
     * @author yehaufei
     * @date 2022-11-28
     */
    List<DocumentSendPageResponse> getDocumentSendList(DocumentSendPageRequest queryDto);
}
